package com.kameiqi.erp.domain.model;
import cn.qqxkj.core.common.base.BaseModel;
import cn.qqxkj.core.annotation.agile.Page;
import cn.qqxkj.core.annotation.agile.PageField;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import java.math.BigDecimal;
import java.util.Date;
import java.math.BigInteger;
import java.lang.String;

/**
 * 单据主表实体类
 * @author 小六子
 * @date 2022-04-23 15:17:32
 */
@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@Table(name = "jsh_depot_head")
@Entity
@Page(cover = true)
@ApiModel("单据主表")
public class DepotHead extends BaseModel{
    /** 类型(出库/入库) */
    @ApiModelProperty(value="类型",notes="类型(出库/入库)")
    private String type;

    /** 出入库分类 */
    @ApiModelProperty(value="出入库分类")
    private String subType;

    /** 初始票据号 */
    @ApiModelProperty(value="初始票据号")
    private String defaultNumber;

    /** 票据号 */
    @ApiModelProperty(value="票据号")
    private String number;

    /** 创建时间 */
    @ApiModelProperty(value="创建时间")
    private Date createTime;

    /** 出入库时间 */
    @ApiModelProperty(value="出入库时间")
    private Date operTime;

    /** 供应商id */
    @ApiModelProperty(value="供应商id")
    private Long organId;

    /** 操作员 */
    @ApiModelProperty(value="操作员")
    private Long creator;

    /** 账户id */
    @ApiModelProperty(value="账户id")
    private Long accountId;

    /** 变动金额(收款/付款) */
    @ApiModelProperty(value="变动金额",notes="变动金额(收款/付款)")
    @Column(scale=6)
    @PageField(dataScale=6)
    private BigDecimal changeAmount;

    /** 找零金额 */
    @ApiModelProperty(value="找零金额")
    @Column(scale=6)
    @PageField(dataScale=6)
    private BigDecimal backAmount;

    /** 合计金额 */
    @ApiModelProperty(value="合计金额")
    @Column(scale=6)
    @PageField(dataScale=6)
    private BigDecimal totalPrice;

    /** 付款类型(现金、记账等) */
    @ApiModelProperty(value="付款类型",notes="付款类型(现金、记账等)")
    private String payType;

    /** 单据类型 */
    @ApiModelProperty(value="单据类型")
    private String billType;

    /** 备注 */
    @ApiModelProperty(value="备注")
    private String remark;

    /** 附件名称 */
    @ApiModelProperty(value="附件名称")
    private String fileName;

    /** 业务员（可以多个） */
    @ApiModelProperty(value="业务员（可以多个）")
    private String salesMan;

    /** 多账户ID列表 */
    @ApiModelProperty(value="多账户ID列表")
    private String accountIdList;

    /** 多账户金额列表 */
    @ApiModelProperty(value="多账户金额列表")
    private String accountMoneyList;

    /** 优惠率 */
    @ApiModelProperty(value="优惠率")
    @Column(scale=6)
    @PageField(dataScale=6)
    private BigDecimal discount;

    /** 优惠金额 */
    @ApiModelProperty(value="优惠金额")
    @Column(scale=6)
    @PageField(dataScale=6)
    private BigDecimal discountMoney;

    /** 优惠后金额 */
    @ApiModelProperty(value="优惠后金额")
    @Column(scale=6)
    @PageField(dataScale=6)
    private BigDecimal discountLastMoney;

    /** 销售或采购费用合计 */
    @ApiModelProperty(value="销售或采购费用合计")
    @Column(scale=6)
    @PageField(dataScale=6)
    private BigDecimal otherMoney;

    /** 状态，0未审核、1已审核、2完成采购|销售、3部分采购|销售 */
    @ApiModelProperty(value="状态",notes="状态，0未审核、1已审核、2完成采购|销售、3部分采购|销售")
    private String status;

    /** 关联订单号 */
    @ApiModelProperty(value="关联订单号")
    private String linkNumber;

    /** 租户id */
    @ApiModelProperty(value="租户id")
    private Long tenantId;

    /** 删除标记，0未删除，1删除 */
    @ApiModelProperty(value="删除标记",notes="删除标记，0未删除，1删除")
    private String deleteFlag;

}
